package cn.iocoder.yudao.module.trade.controller.admin.depositorderreturn.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 押金单退瓶分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DepositOrderReturnPageReqVO extends PageParam {

    @Schema(description = "单据单号")
    private String code;

    @Schema(description = "燃气户id", example = "21330")
    private Long crmGasUserId;

    @Schema(description = "押金单id", example = "12917")
    private Long depositId;

    @Schema(description = "押金总瓶数")
    private Integer steelCylinderTotal;

    @Schema(description = "退瓶数量", example = "8819")
    private Integer bottleReturnCount;

    @Schema(description = "已扫描退瓶数量", example = "6545")
    private Integer scanBottleReturnCount;

    @Schema(description = "押金内容")
    private String depositContent;

    @Schema(description = "应退金额")
    private BigDecimal refundableAmount;

    @Schema(description = "实际退款金额")
    private BigDecimal actuaRefundAmount;

    @Schema(description = "退瓶原因")
    private String reasonBottleReturn;

    @Schema(description = "总押金")
    private BigDecimal totalDeposit;

    @Schema(description = "待缴租金", example = "18660")
    private Long rentPaid;

    @Schema(description = "部门id", example = "17150")
    private Integer deptId;

    @Schema(description = "确认人", example = "10967")
    private Long confirmId;

    @Schema(description = "退瓶单附件", example = "https://www.iocoder.cn")
    private String imageUrl;

    @Schema(description = "退瓶单状态0待确认1已确认", example = "1")
    private String status;

    @Schema(description = "备注", example = "随便")
    private String remark;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "剩余数量")
    private Integer residueCount;
    @Schema(description = "退押金额")
    private BigDecimal refundAmount;

    private String submitName;
    private String confirmName;

    private String mobile;

    private String crmName;

}